diff --git a/test/cmd/fdt.c b/test/cmd/fdt.c
index 4f935d0..721345f 100644
--- a/test/cmd/fdt.c
+++ b/test/cmd/fdt.c
@@ -213,7 +213,7 @@
 
 	return 0;
 }
-FDT_TEST(fdt_test_addr, UTF_CONSOLE_REC);
+FDT_TEST(fdt_test_addr, UTF_CONSOLE);
 
 /* Test 'fdt addr' resizing an fdt */
 static int fdt_test_addr_resize(struct unit_test_state *uts)
@@ -247,7 +247,7 @@
 
 	return 0;
 }
-FDT_TEST(fdt_test_addr_resize, UTF_CONSOLE_REC);
+FDT_TEST(fdt_test_addr_resize, UTF_CONSOLE);
 
 static int fdt_test_move(struct unit_test_state *uts)
 {
@@ -281,7 +281,7 @@
 
 	return 0;
 }
-FDT_TEST(fdt_test_move, UTF_CONSOLE_REC);
+FDT_TEST(fdt_test_move, UTF_CONSOLE);
 
 static int fdt_test_resize(struct unit_test_state *uts)
 {
@@ -305,7 +305,7 @@
 
 	return 0;
 }
-FDT_TEST(fdt_test_resize, UTF_CONSOLE_REC);
+FDT_TEST(fdt_test_resize, UTF_CONSOLE);
 
 static int fdt_test_print_list_common(struct unit_test_state *uts,
 				      const char *opc, const char *node)
@@ -442,13 +442,13 @@
 {
 	return fdt_test_print_list(uts, true);
 }
-FDT_TEST(fdt_test_print, UTF_CONSOLE_REC);
+FDT_TEST(fdt_test_print, UTF_CONSOLE);
 
 static int fdt_test_list(struct unit_test_state *uts)
 {
 	return fdt_test_print_list(uts, false);
 }
-FDT_TEST(fdt_test_list, UTF_CONSOLE_REC);
+FDT_TEST(fdt_test_list, UTF_CONSOLE);
 
 /* Test 'fdt get value' reading an fdt */
 static int fdt_test_get_value_string(struct unit_test_state *uts,
@@ -554,7 +554,7 @@
 
 	return 0;
 }
-FDT_TEST(fdt_test_get_value, UTF_CONSOLE_REC);
+FDT_TEST(fdt_test_get_value, UTF_CONSOLE);
 
 static int fdt_test_get_name(struct unit_test_state *uts)
 {
@@ -633,7 +633,7 @@
 
 	return 0;
 }
-FDT_TEST(fdt_test_get_name, UTF_CONSOLE_REC);
+FDT_TEST(fdt_test_get_name, UTF_CONSOLE);
 
 static int fdt_test_get_addr_common(struct unit_test_state *uts, char *fdt,
 				    const char *path, const char *prop)
@@ -700,7 +700,7 @@
 
 	return 0;
 }
-FDT_TEST(fdt_test_get_addr, UTF_CONSOLE_REC);
+FDT_TEST(fdt_test_get_addr, UTF_CONSOLE);
 
 static int fdt_test_get_size_common(struct unit_test_state *uts,
 				     const char *path, const char *prop,
@@ -787,7 +787,7 @@
 
 	return 0;
 }
-FDT_TEST(fdt_test_get_size, UTF_CONSOLE_REC);
+FDT_TEST(fdt_test_get_size, UTF_CONSOLE);
 
 static int fdt_test_set_single(struct unit_test_state *uts,
 			       const char *path, const char *prop,
@@ -929,7 +929,7 @@
 
 	return 0;
 }
-FDT_TEST(fdt_test_set, UTF_CONSOLE_REC);
+FDT_TEST(fdt_test_set, UTF_CONSOLE);
 
 static int fdt_test_mknode(struct unit_test_state *uts)
 {
@@ -997,7 +997,7 @@
 
 	return 0;
 }
-FDT_TEST(fdt_test_mknode, UTF_CONSOLE_REC);
+FDT_TEST(fdt_test_mknode, UTF_CONSOLE);
 
 static int fdt_test_rm(struct unit_test_state *uts)
 {
@@ -1081,7 +1081,7 @@
 
 	return 0;
 }
-FDT_TEST(fdt_test_rm, UTF_CONSOLE_REC);
+FDT_TEST(fdt_test_rm, UTF_CONSOLE);
 
 static int fdt_test_bootcpu(struct unit_test_state *uts)
 {
@@ -1114,7 +1114,7 @@
 
 	return 0;
 }
-FDT_TEST(fdt_test_bootcpu, UTF_CONSOLE_REC);
+FDT_TEST(fdt_test_bootcpu, UTF_CONSOLE);
 
 static int fdt_test_header_get(struct unit_test_state *uts,
 			       const char *field, const unsigned long val)
@@ -1173,7 +1173,7 @@
 
 	return 0;
 }
-FDT_TEST(fdt_test_header, UTF_CONSOLE_REC);
+FDT_TEST(fdt_test_header, UTF_CONSOLE);
 
 static int fdt_test_memory_cells(struct unit_test_state *uts,
 				 const unsigned int cells)
@@ -1256,7 +1256,7 @@
 
 	return 0;
 }
-FDT_TEST(fdt_test_memory, UTF_CONSOLE_REC);
+FDT_TEST(fdt_test_memory, UTF_CONSOLE);
 
 static int fdt_test_rsvmem(struct unit_test_state *uts)
 {
@@ -1319,7 +1319,7 @@
 
 	return 0;
 }
-FDT_TEST(fdt_test_rsvmem, UTF_CONSOLE_REC);
+FDT_TEST(fdt_test_rsvmem, UTF_CONSOLE);
 
 static int fdt_test_chosen(struct unit_test_state *uts)
 {
@@ -1375,7 +1375,7 @@
 
 	return 0;
 }
-FDT_TEST(fdt_test_chosen, UTF_CONSOLE_REC);
+FDT_TEST(fdt_test_chosen, UTF_CONSOLE);
 
 static int fdt_test_apply(struct unit_test_state *uts)
 {
@@ -1527,7 +1527,7 @@
 
 	return 0;
 }
-FDT_TEST(fdt_test_apply, UTF_CONSOLE_REC);
+FDT_TEST(fdt_test_apply, UTF_CONSOLE);
 
 int do_ut_fdt(struct cmd_tbl *cmdtp, int flag, int argc, char *const argv[])
 {
